package com.mengniu.commerce.collect.model.item;

import lombok.Data;

import java.util.List;

@Data
public class YzItem {
    private Long hideStock;
    private PostSaleParam postSaleParam;
    private Long itemType;
    private Long channel;
    private CategoryProperties categoryProperties;
    private String itemBarcode;
    private Boolean needCustomsCheck;
    private Long createdTime;
    private List<Long> tagIds;
    private List<Image> images;
    private String bizCode;
    private Boolean skuPictureDisplayConfig;
    private PurchasePermission purchasePermission;
    private Long stockDeductMode;
    private ItemDeliveryParam itemDeliveryParam;
    private Long goodsPlatform;
    private List<Object> channels;
    private SPU spu;
    private List<Object> messages;
    private Long rootItemId;
    private ItemPageSettingModel itemPageSettingModel;
    private Long rootKdtId;
    private ExtraParam extraParam;
    private Long isDisplay;
    private Long cid;
    private String desc;
    private List<Long> abilityMarkCodes;
    private List<Object> itemProps;
    private Long isVirtual;
    private Template template;
    private String detailUrl;
    private Long autoListingTime;
    private ItemPriceParam itemPriceParam;
    private String title;
    private Boolean joinLevelDiscount;
    private String buyBtnLabel;
    private String itemNo;
    private List<Long> actualTagIds;
    private Long kdtId;
    private String alias;
    private Boolean needCustomsInfo;
    private String summary;
    private Boolean needCustomsInfoWithPicture;
    private Long quantity;
    private Long itemId;
    private List<Object> skuValueProps;
    private Long soldNum;
    private SizeGroup sizeGroup;
    private Long buyBtnConfig;
    private Long startSaleNum;
    private List<Sku> skuList;
    private Long videoId;

    

    public static class PostSaleParam {
        private Boolean supportUnconditionalReturn;
        private Boolean isReturnMsg;
        private Long isSupportBarter;

        
    }

    @Data
    public static class CategoryProperties {
        private List<Object> publics;
        private List<Object> privates;

        
    }

    @Data
    public static class Image {
        private String imageUrl;

        
    }
    @Data
    public static class PurchasePermission {
        private Long quotaCycle;
        private Boolean purchaseRight;
        private Long buyQuota;

        
    }

    @Data
    public static class ItemDeliveryParam {
        private Long postage;
        private DeliverySetting deliverySetting;

        
    }

    @Data
    public static class DeliverySetting {
        private Boolean cityDelivery;
        private Boolean selfPick;
        private Boolean express;
        private Boolean heavyContinued;

        
    }

    @Data
    public static class SPU {
        private Long spuId;

        
    }

    @Data
    public static class ItemPageSettingModel {
        private String itemPageMode;

        
    }

    @Data
    public static class ExtraParam {
        private ItemChannelExtra itemChannelExtra;

        
    }

    @Data
    public static class ItemChannelExtra {
        private Long categoryId;

        
    }

    @Data
    public static class Template {
        private String templateTitle;
        private Long templateId;

        
    }

    @Data
    public static class ItemPriceParam {
        private String origin;

        
    }

    @Data
    public static class Sku {
        private Long rootSkuId;
        private String skuNo;
        private Long price;
        private Long stockNum;
        private Long skuCreatedTime;
        private Long skuId;
        private String skuBarcode;
        private Long skuModifiedTime;
        private List<SkuProps> skuProps;
        private Long soldNum;

        
    }

    @Data
    public static class SkuProps {
        private String propName;
        private Long propValueId;
        private String propValueName;
        private Long propNameId;

        
    }

    @Data
    public static class SizeGroup {
        private List<Object> sizes;
    }
}
